
#pragma once
#include <string>
#include "fs/path.h"

namespace fs {

	class DirectoryEntry {
		std::string _name;
	public:
		DirectoryEntry( const std::string & name );
		std::string name();
		bool operator ==( const DirectoryEntry & other ) const;
	};

	class DirectoryIterator {
		struct Impl;
		Impl * _pimpl;
	public:
		DirectoryIterator();
		DirectoryIterator( const Path & dir );

		DirectoryIterator &operator++();
		DirectoryIterator operator++(int);
		DirectoryEntry &operator*();
		DirectoryEntry *operator->();
		bool operator !=( const DirectoryIterator & other ) const;
		bool operator ==( const DirectoryIterator & other ) const;
	};

}